package ee.karileet.productcatalogue.facade;

import ee.karileet.productcatalogue.model.*;

/**
 * @author Markus Karileet
 * @version 1.0
 * @created 29-nov-2013 16:09:21
 */
public interface IAdminFacade extends IClientFacade {

	/**
	 * 
	 * @param name
	 * @param description    description
	 */
	public boolean addGroup(String name, String description);

	/**
	 * 
	 * @param name
	 * @param description    description
	 */
	public boolean addManufactor(String name, String description);

	/**
	 * 
	 * @param groupId
	 * @param name
	 * @param type
	 * @param manufactorId    manufactorId
	 */
	public boolean addProduct(int groupId, String name, String type, int manufactorId);

	public java.util.Set<User> listUsers();

	/**
	 * 
	 * @param groupId    groupId
	 */
	public boolean removeGroup(int groupId);

	/**
	 * 
	 * @param manufactorId    manufactorId
	 */
	public boolean removeManufactor(int manufactorId);

	/**
	 * 
	 * @param productId    productId
	 */
	public boolean removeProduct(int productId);

	/**
	 * 
	 * @param groupId
	 * @param groupName
	 * @param groupDescription    groupDescription
	 */
	public boolean updateGroup(int groupId, String groupName, String groupDescription);

	/**
	 * 
	 * @param manufactorId
	 * @param name
	 * @param description    description
	 */
	public boolean updateManufactor(int manufactorId, String name, String description);

	/**
	 * 
	 * @param productId
	 * @param name
	 * @param type
	 * @param groupId
	 * @param manufactorId    manufactorId
	 */
	public boolean updateProduct(int productId, String name, String type, int groupId, int manufactorId);

}